/*
 * photRes.c
 *
 *  Created on: 2022年5月8日
 *      Author: Administrator
 */

#include "photRes.h"
#include "adc.h"

//获得ADC值
//ch: 通道值 0~16，取值范围为：ADC_CHANNEL_0~ADC_CHANNEL_16
//返回值:转换结果
u16 Get_Adc(u32 ch)
{
    ADC_ChannelConfTypeDef ADC1_ChanConf;

    ADC1_ChanConf.Channel=ch;                                   //通道
    ADC1_ChanConf.Rank=1;                                       //第1个序列，序列1
    ADC1_ChanConf.SamplingTime=ADC_SAMPLETIME_239CYCLES_5;      //采样时间
    HAL_ADC_ConfigChannel(&hadc1,&ADC1_ChanConf);        //通道配置

    HAL_ADC_Start(&hadc1);                               //开启ADC

    HAL_ADC_PollForConversion(&hadc1,10);                //轮询转换

	return (u16)HAL_ADC_GetValue(&hadc1);	        	//返回最近一次ADC1规则组的转换结果
}
//获取指定通道的转换值，取times次,然后平均
//times:获取次数
//返回值:通道ch的times次转换结果平均值
u16 Get_Adc_Average(u32 ch,u8 times)
{
	u32 temp_val=0;
	u8 t;
	for(t=0;t<times;t++)
	{
		temp_val+=Get_Adc(ch);
		HAL_Delay(5);

	}
	return temp_val/times;
}
